As shown in FIG. 1, computational random numbers can be roughly broken down into three categories, based upon which property of randomness they optimize: independence, uniformity, or unpredictability. The optimization of the first two properties, independence and uniformity, lead to deterministic random numbers known as pseudorandom and quasi-random numbers, respectively. Randomization of the third property, unpredictability, is the basis of cryptographic random numbers and historically, randomization based on unpredictability may or may not be deterministic. However, due to the standardization of cryptographic random numbers, standards-compliant cryptographic random number generators are based on numbers derived from physically random sources of entropy. Random numbers based upon numbers derived from physically random sources, are commonly referred to as “real” random numbers.
The history of real random numbers is rather unremarkable, as “real” random numbers resulting from physically random sources may include, radioactive decay, thermal noise and a host of other physical sources of randomness, have mostly failed to produce random numbers that can pass rather ordinary tests of randomness. The issue with lack of true randomness in these real random number is commonly a result of the process of measuring the physical process purported to be random, invariably introducing significant measurement error and bias. This result has lead to the requirement in the field that “truly random” numbers be subject to considerable post-processing to ensure that the final output can pass rigorous tests of randomness.
As such, the standard for cryptographic random numbers advocated by the National Institute of Standards and Technology (NIST) Computer Security Group explicitly requires a source of “real” numbers as input to extensive back-end processing to ensure that the final output passes tests of randomness. One such “real” random number generator is the Intel Digital Random Number Generator (DRNG). The Intel® DRNG generates true random numbers using a processor resident entropy source to seed a hardware-implemented random number generator. Unlike software approaches, the DRNG utilizes a high-quality entropy source that can be sampled quickly to repeatedly seed a cryptographically secure random number generator with high-quality entropy.
However, while high-quality random number generators are known in the art, random numbers used for simulation purposes need to be reproducible for a variety of reasons. Thus, cryptographic random numbers are fundamentally inappropriate for simulations requiring reproducibility of results. Yet, modern cryptographic random numbers, such as those generated by the Intel® DRNG are much easier to obtain in simulation settings, and as such, there has been considerable interest in finding ways to appropriately use them in simulations requiring reproducibility.
Accordingly, what is needed in the art is a system and method for generating cryptographic random numbers that can be reproduced for use in simulation environments requiring reproducible results.